package com.wyj.dao;

import com.wyj.pojo.GameUser;
import com.wyj.protoBuf.protoJava.GameUserProto;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface UserDao extends JpaRepository<GameUser,Long> {

    //查询出vip等级为100L的玩家数量
    @Query(value = "select count(id) from GameUser where vipLevel = ?1")
    int findGameUserCountByVipLevel(Long vipLevel);

    //查询名字为wyj9的玩家
    List<GameUser> findGameUsersByUserName(String userName);

    //查询金币数量大于1200的玩家信息
    List<GameUser> findGameUsersByGoldCoinAfter(Long goldCoins);

    //查询金币数量小于1200的玩家信息
    List<GameUser> findGameUsersByGoldCoinBefore(Long goldCoins);

    //查询金币数量大于等于1200的玩家信息
    List<GameUser> findGameUsersByGoldCoinGreaterThanEqual(Long goldCoins);

    //查询金币数量[1200,2000]之间的玩家数量
    List<GameUser> findGameUsersByGoldCoinBetween(Long start,Long end);

    //对姓名进行模糊查询
    List<GameUser> findGameUsersByUserNameLike(String userName);

    //将姓名为wyj9的进行删除
    @Transactional
    int deleteGameUserByUserName(String userName);

    //根据用户的id进行查询
    GameUser findGameUserById(Long id);

    //根据用户的姓名进行查询
    GameUser findGameUserByUserName(String userName);

    //根据用户的UUID进行查询用户
    GameUser findGameUserByUUID(String uuid);

}
